package PriorityQueueDemo;

import java.util.*;

public class PriorityQueueDemo {
    public static void main(String[] args) {
        PriorityQueue<String> queue1 = new PriorityQueue<>(); // 创建优先队列对象
        queue1.offer("Oklahoma");  // 插入元素到队列中
        queue1.offer("Indiana");
        queue1.offer("Georgia");
        queue1.offer("Texas");

        System.out.println("Priority queue using Comparable: ");
        while (queue1.size() > 0) { // 判断队列里是否有元素，若是没有元素会跳到remove方法执行吗？
            System.out.println(queue1.remove() + " "); // remove：获取并删除队列头元素，无元素则抛异常
        }

        // 创建一个初始容量为4的默认优先队列（默认为11）,为什么我要指定容量，不指定也能运行
        PriorityQueue<String> queue2 = new PriorityQueue(4, Collections.reverseOrder()); // reverseOrder()：对元素进行倒序排列

        queue2.offer("Oklahoma");
        queue2.offer("Indiana");
        queue2.offer("Georgia");
        queue2.offer("Texas");

        System.out.println("\nPriority queue using Comparator: ");
        while (queue2.size() > 0) {
            System.out.println(queue2.remove() + " ");
        }
    }
}
